/****************************************
 * 2018 - 2021 版权所有 CopyRight(c) 快程乐码信息科技有限公司所有, 未经授权，不得复制、转发
 */

package com.yuyan.config;

import ma.glasnost.orika.MappingContext;
import ma.glasnost.orika.converter.BidirectionalConverter;
import ma.glasnost.orika.metadata.Type;

import java.time.Instant;
import java.time.LocalDate;
import java.time.ZoneId;
import java.time.ZonedDateTime;
import java.util.Date;

/*****************
 *
 * @author tanj
 * @date 2020/7/2 11:46
 * @version v1.0
 * @description 需要用到的时候可以直接使用  现在不考虑
 *
 */
public class DateAndLocalDate extends BidirectionalConverter<Date, LocalDate> {
    @Override
    public LocalDate convertTo(Date date, Type<LocalDate> type, MappingContext mappingContext) {
        ZoneId zoneId = ZoneId.systemDefault();
        Instant instant = date.toInstant();

        return instant.atZone(zoneId).toLocalDate();
    }

    @Override
    public Date convertFrom(LocalDate localDate, Type<Date> type, MappingContext mappingContext) {
        ZoneId zoneId = ZoneId.systemDefault();
        ZonedDateTime zonedDateTime = localDate.atStartOfDay(zoneId);

        return Date.from(zonedDateTime.toInstant());
    }
}
